package ln.javatest.day08.demo08;
/*
final关键字代表最终、不可改变的。
常见四种用法：
1.可以用来修饰一个类
2.还可以用来修饰一个方法
3.还可以用来修饰一个局部变量
4.还可以用来修饰一个成员变量
*/

public class Demo01final {
    public static void main(String[] args) {
        int num = 10;
        System.out.println(num);  //10
        num = 20;
        System.out.println(num);   //20
        //一旦使用final用来修饰局部变量，那么这个变量就不能进行更改
        //"一次赋值，终生不变“
        final int num1 = 200;
        System.out.println(num1);   //200
        // 错误写法！num2 = 250;
        final int num2;
        num2 = 30;
        //对于基本类型来说，不可变说的是变量当中的数据不可改变
        //对于引用类型来说，不可变说的是变量当中的地址值不可改变
        //这下面的stu地址有改变
        Student stu = new Student("王嘉尔");
        System.out.println(stu.getName()); //王嘉尔
        stu = new Student("熊丰");
        System.out.println(stu.getName());  //熊丰
        //下面的stu1地址不能改变
        final Student stu1 = new Student("易烊千玺");
        //错误写法！ stu1 = new Student("小新");
        System.out.println(stu1.getName());  //易烊千玺
        //这里他的地址没有改变，只改变了数据
        stu1.setName("消防");
        System.out.println(stu1.getName());  //消防

    }
}
